package general.interfaces;

/**
 * IObservable Interface for implementing the ObserverPattern
 * 
 * @author tim
 * @since 0.1.0
 * @version 0.4.1
 */
public interface IObservable {
	
	/**
	 * adds the passed {@link IObserver} to the intern List 
	 * @param o {@link IObserver}
	 */
	void addObserver(IObserver o);
	
	/**
	 * removes the passed {@link IObserver} from the intern List
	 * @param o {@link IObserver}
	 */
	void removeObserver(IObserver o);
	
	/**
	 * Calls the Update Method of all {@link IObserver}s
	 */
	void NotifyAll();
	
}
